package git




//gitee 和 github  都是开源的，
//公司内容一般都是使用的gitlab(付费)

//产品经理/ui等使用小乌龟   tortoiseGit




func banBenKongZhi(){
	/*

	版本控制
	什么是版本控制？-->版本迭代 / 代码的快照

	版本控制(Revision control )是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史，方便查看更改历史记录，备份以便恢复以前的版本的软件工程技术。

	·实现跨区域多人协同开发
	·追踪和记载一个或者多个文件的历史记录
	·组织和保护你的源代码和文档
	·统计工作量
	·并行开发、提高开发效率
	·跟踪记录整个软件的开发过程
	·减轻开发人员的负担，节省时间，同时降低人为错误
	1.协同修改，多人并行开发修改服务器的文件
	2.数据备份
	3.版本管理，权限控制
	4.如果文件和工程误删了还能找回来吗？
	5.分支管理 1.0  2.0
		分为两种：标签tags 和 分支
	6.遇到文件冲突如何解决
	7.如果把一些我临时保存的文件不要提交？

	简单说就是用于管理多人协同开发项目的技术。

	没有进行版本控制或者版本控制本身缺乏正确的流程管理，在软件开发过程中将会引入很多问题。
	如代码


	*/
}


//
func banBen(){

	/*
		一：本地版本控制
			本地文件，备份2021,备份2020
		二：集中版本控制 svn
			把内容统一提交到统一/公用/集群服务器上

			所有的版本数据都存在服务器上，用户的本地只有自己以前所同步的版本，如果不连网的话，用户就看不到历史版本，也无法切换版本验证问题，或在不同分支工作。而且，所有数据都保存在单一的服务器上，有很大的风险这个服务器会损坏，这样就会丢失所有的数据，当然可以定期备份。代表产品:SVN、CVS、vsS

		三：分布式版本控制 git
			每个人都拥有全部的代码，不会因为服务器损坏或者网络问题，造成不能工作的情况

			所有版本信息仓库全部同步到本地的每个用户，这样就可以在本地查看所有版本历史，可以离线在本地提交，只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据，只要有一个用户的设备没有问题就可以恢复所有的数据，但这增加了本地存储空间的占用。

	*/


}

//svn 和 git的区别



func gitAndSvnDiffer(){
	/*

	SVN是【集中式】版本控制系统，版本库是集中放在中央服务器的，而工作的时候，用的都是自己的电脑，所以首先要从中央服务器得到最新的版本，然后工作，完成工作后，需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作，对网络带宽要求较高。

	Git是【分布式】版本控制系统，没有中央服务器，每个人的电脑就是一个完整的版本库，工作的时候不需要联网了，因为版本都在自己电脑上。协同的方法是这样的︰比如说自己在电脑上改了文件A，其他人也在电脑上改了文件A，这时，你们两之间只需把各自的修改推送给对方，就可以互相看到对方的修改了。
	Git可以直接很明显的看到更新了哪些代码和文件

	Git是目前世界上最先进的分布式版本控制系统。

	一个项目，dh负责的功能模块更改了100次
	svn，把这100个版本上传到集中服务器上
	git，这100个版本在自己的本地仓库上，并不占用服务器的空间



	小结
	.svn和git都是做版本控制的，如果不理解一句话:记录代码的轨迹就好比每个人的成长阶段一样。
	·但是svn它集中式的版本控制，不能离线工作。git分布式的版本控制，它版本放在用户自己的电脑。
	.sVn不支持离线工作，版本全部都放在是中央服务器。如果中央服务器挂了。那么版本全部丢失。
	.git支持离线工作。版本都放用户自己电脑上完成。----分布式的版本控制
	.svn是所有的鸡蛋放在一个篮子里，篮子里鸡蛋也就没了
	.git是用户自己的鸡蛋放在自己的篮子里。我可以选择性的一些鸡蛋旗入公共篮子里。公共的篮子挂了不会影响我自己篮子的鸡蛋。



	*/
}


//git的历史   https://www.bilibili.com/video/BV1FE411P7B3?p=3


//git 安装成功后，在开始菜单中会有git项，菜单下有3个程序
//任意文件夹鼠标右键

//Git Bash : Unix与Linux风格的命令行，使用最多，推荐最多
//Git CMD : Windows风格的命令行
//Git GUI:图形界面的Git，不建议初学者使用，尽量先熟悉常用命令